/* 
 * File:   Service.cpp
 * Author: max
 * 
 * Created on May 31, 2013, 1:25 AM
 */

#include <strings.h>
#include "server_Service.h"
#include "common_ProtocoloConstantes.h"

using namespace TP::Servicios;

Service::Service(const string& pNombre) {
    _nombre = pNombre;   
}

Service::~Service() {
    _mensaje.clear();
}

vector<string>& Service::hidratarMensaje(const string& pMensaje) throw (const int&) {
        
    // Hidrato el comando.
    try
    {
        std::stringstream ssParametros (pMensaje);
        string strParametro = "";
        _mensaje.clear();
        
        while (std::getline(ssParametros, strParametro, SEPARADOR_CAMPO))
        {
            std::stringstream ssHelper;
            ssHelper << strParametro;
            strParametro = "";
            ssHelper >> strParametro;

            if (strParametro.length() > 0)
            {
                _mensaje.push_back(strParametro);
            }
        }
    }
    catch (int &)
    {
        throw;
    }
}

vector<string>& Service::getMensaje (){
    return _mensaje;
}

void Service::validarIntegridadMensaje () throw (const int&){
    
    if (_mensaje.size() < 3 )
    {
        throw COMANDO_INVALIDO;
    }
}

string& Service::getNombre(){
    return _nombre;
}